;/////////////////////////////////////////////////////////////;
;                                                             ;
;                 SimpleDX11 Shader Interface                 ;
;                                                             ;
;                                                             ;
;                   (c) 2013 SimpleDX Team                    ;
;                                                             ;
;                         License: MIT                        ;
;                                                             ;
;/////////////////////////////////////////////////////////////; 

;-//    Public constants     //


;-//    Public structures    //
Structure Shader_DataDescription
  *Camera.Camera  
  *Light.Light
  WorldMatrix.D3DMATRIX
  ProjectionMatrix.D3DMATRIX
EndStructure



;/////////////////////
;//    Interface    //
;/////////////////////
Interface Shader 
  AddTexture(*Texture.i)
  AddLighting() 
  CompileShaderFile(File.s, EntryPoint.s, SV.s)
  AddConstantBuffer(*CBDesc)
  UpdateConstantBuffer(StartSlot.l, NumBuffers.l, *cbData = #Null)
  SetShaderData(*DataDesc.Shader_DataDescription)
  Render()
  Release()
EndInterface


;/////////////////////
;//    Procedures   //
;/////////////////////

Declare New_Shader(*D3D, Type.l)

;/////////////////////
;//     Private     //
;/////////////////////




; IDE Options = PureBasic 5.20 beta 14 LTS (Windows - x64)
; CursorPosition = 20
; EnableXP
; EnableCompileCount = 0
; EnableBuildCount = 0